const vscode = require('vscode');

function registerAddToChatCommand(context, chatViewProvider) {
    let addToChatCommand = vscode.commands.registerCommand('gptdemo.addToChat', async () => {
        const editor = vscode.window.activeTextEditor;
        if (!editor) {
            vscode.window.showInformationMessage('请先打开一个文件');
            return;
        }

        // 获取选中的文本或整个文件内容
        let text = '';
        if (editor.selection.isEmpty) {
            // 如果没有选中文本，则获取整个文件内容
            const document = editor.document;
            text = document.getText();
        } else {
            // 获取选中的文本
            text = editor.document.getText(editor.selection);
        }

        // 确保有内容要添加
        if (!text.trim()) {
            vscode.window.showInformationMessage('没有可以添加的内容');
            return;
        }

        // 显示聊天视图
        await vscode.commands.executeCommand('qwenChatView.focus');

        // 获取当前文件的语言类型
        const language = editor.document.languageId;

        // 构建消息对象
        const messageObj = {
            text: `\`\`\`${language}\n${text}\n\`\`\``
        };

        // 发送消息到 Webview 添加到输入框
        if (chatViewProvider._view) {
            try {
                chatViewProvider._view.webview.postMessage({
                    command: 'addToInput',
                    text: messageObj.text
                });
            } catch (error) {
                vscode.window.showErrorMessage('添加内容到输入框失败：' + error.message);
            }
        }
    });

    context.subscriptions.push(addToChatCommand);
}

module.exports = {
    registerAddToChatCommand
}; 